Concurrent Garbage Collection for Concurrent Rewriting
نویسنده
چکیده
We describe an algorithm that achieves garbage collection when performing concurrent rewriting. We show how this algorithm follows the implementation model of concurrent graph rewriting. This model has been studied and directly implemented on MIMD machines where nodes of the graph are distributed over a set of processors. A distinguishing feature of our algorithm is that it collects garbage concurrently with the rewriting process. Furthermore, our garbage collection algorithm never blocks the process of rewriting; in particular it does not involve synchronisation primitives. In contrast to a classical garbage collection algorithm reclaiming unused blocks of memory, the presented algorithm collects active nodes of the graph (i.e. nodes are viewed as processes). Finally, we present diierent results of experimentations based on our implementation (RECO) of concurrent rewriting using the concurrent garbage collection algorithm and show that signiicant speed-ups can be obtained when computing normal forms of terms.
منابع مشابه
Toward the Concurrent Implementation ofComputational
This paper places concurrent rewriting in the perspective of supporting the development and use of computational systems. We brieey recall the usefulness of computational systems (i.e. a rewriting theory with strategies) as a logical framework. We then show that the right implementation model for concurrent rewriting allows us to give a meaning to the concurrent rewrite of overlapping redexes. ...
متن کاملCommunication Issues regarding Parallel Functional Graph Rewriting
Efficient communication is the basis of an implementation of a parallel language on a distributed machine architecture. This article handles about the communication mechanism that is needed to support parallel graph rewriting in Concurrent Clean. The danger of deadlock is imminent at several levels of such a system. Communication problems and their solutions are closely related to memory manage...
متن کاملActor Garbage Collection Using Vertex-Preserving Actor-to-Object Graph Transformations
Large-scale distributed computing applications require concurrent programming models that support modular and compositional software development. The actor model supports the development of independent software components with its asynchronous message-passing communication and state encapsulation properties. Automatic actor garbage collection is necessary for high-level actor-oriented programmi...
متن کاملXML Stream Processing Using a Lazy Concurrent Language
Motivated by previous work on XML stream processing, we noticed that programmers need concurrency to save space, especially in a lazy language. User-controllable concurrency provides the possibility of reducing space usage in many programs. With lower garbage-collection overhead resulting from concurrent execution, the elapsed time of programs, stream processing ones in particular, is tremendou...
متن کاملA Generational Mostly-concurrent Garbage Collector To appear in the 2000 International Symposium on Memory Management
This paper reports our experiences with a mostly-concurrent incremental garbage collector, implemented in the context of a high performance virtual machine for the Java programming language. The garbage collector is based on the “mostly parallel” collection algorithm of Boehm et al. and can be used as the old generation of a generational memory system. It overloads efficient write-barrier code...
متن کامل